﻿using System;
using System.Collections.Generic;
using BrainTechLLC.ThreadSafeObjects;
namespace Mud.EmlenMudMain
{
    public enum TimeElements
    {
        none = 0,
        year = 1,
        month = 2,
        date = 3,
        hour = 4,
        minute = 5,
        second = 6,
        millisecond = 7,
        dayofweek = 8,
        CurrentMax = 9
    }

    public enum DaysOftheWeek
    {
        Sunday = 0,
        Mudday = 1,
        Tilsday = 2,
        Werifday = 3,
        Tukiday = 4,
        Federn = 5,
        Vatidar = 6,
        AbsoluteMax = 7
    }

    /// <summary>
    /// Unfortunately there must be 12...
    /// </summary>
    public enum MonthNames
    {
        none = 0,
        Frostmourne = 1,
        Tedium = 2,
        The_Dawning = 3,
        Warming_Dawn = 4,
        Planting = 5,
        Lifespring = 6,
        Owens_Birthday = 7,
        Sol = 8,
        Harvest = 9,
        Late_Harvest = 10,
        The_Winds = 11,
        Death = 12,
        AbsoluteMax = 13
    }

    public interface IArenaBidData
    {
        List<string> Bidders { get; set; }
        ThreadSafeLookupNonRef<long, int> Bidfor { get; set; }
        ThreadSafeLookupNonRef<long, int> Bids { get; set; }
        string[] Fighters { get; set; }
        bool Taking_bids { get; set; }
        int Waitticks { get; set; }
    }

    public interface IDynamicWorldData
    {
//        List<long> AggressiveMobs { get; set; }
//        System.Collections.Generic.List<CharacterData> AllCharactersInCombat1 { get; set; }
//        System.Collections.Generic.Dictionary<long, CharacterData> AllCharactersInCombatByUniqueID1 { get; set; }
//        System.Collections.Generic.Dictionary<string, System.Collections.Generic.List<CharacterData>> AllChars1 { get; set; }
//        System.Collections.Generic.Dictionary<int, System.Collections.Generic.List<CharacterData>> AllCharsByFirstTwoLetters1 { get; set; }
//        System.Collections.Generic.List<ObjectData> AllObjects1 { get; set; }
//        System.Collections.Generic.List<CharacterData> AllPlayers1 { get; set; }
//        IArenaBidData BidData { get; set; }
//        TimeInfoData BootupTime { get; set; }
//        void CombatTick();
//        long CurrentMaxIdentifier { get; }
//        TimeInfoData CurrentTime { get; set; }
//        bool IsBuilderPort { get; set; }
//        TimeInfoData LastCombatRound { get; set; }
//        void LinkAllRoomsByExits();
//        long MaxUniqueIdentifier { get; set; }
//        long NextUniqueIdentifier { get; }
//        System.Collections.Generic.Dictionary<int, System.Collections.Generic.List<ObjectData>> ObjectsByProtoVnum1 { get; set; }
//        void reset_world();
//#if NO_SILVERLIGHT
//        System.Collections.ArrayList RgDescriptors { get; set; }
//        System.Collections.ArrayList RgDescriptrs { get; set; }
//#endif
//        int TicksToReboot { get; set; }
//        WeatherData WeatherInfo { get; set; }
//        IWorldStats WorldStats { get; set; }
    }
}
